多方式注入 第三十四天

  1. 0x00宽字节注入
    1. 成因
    2. 主要添加为
    3. 功能解释
    4. 总结
    5. 添加的函数
    6. 自创建
  2. 二次编程注入
    1. 二次编,码问题
    2. 二次编码的函数注入
  3. http请求头
    1. user-agent
    2. referer
    3. x-forwarded-for

0x00宽字节注入

成因

    为防止渗透测试过程中,用来检测网站的关键字符,被网站开发人员听过代码函数设置给过滤

掉,通过构建16进制编码来防止,单引号,双引号等用来做测试的特殊字符被过滤掉。

原型sql语句:

select * from 'id' 通过函数转义具有防单引号,双引号,括号的渗透测试

主要添加为

%df%27

%81%27

功能解释

    一般网站人员通过addslashes()函数做字符转义,会在多出的字符前添加\,转义字符,

而斜杠的16进制数为%c5,利用gbk或者utf8的编码结构构成文字或者其他,可以顺利进行注入测试。

宽字节测试成功后,通过union select联合查询就可以得出数据,

###

总结

    宽字节注入,主要集中在gbk编码方式中,宽字节注入,

post提交数据用burp修改数据,

get数据在地址栏中做修改,

这个宽字节的注入可以有多种payload解释,如联合查询,延时注入等,但内联是无法用的。


添加的函数

--tarper 跟脚本

sqlmap purge 清除缓存

在没有指定参数的情况下,sqlmap会自动找到 *  

--leavel 5 设置payload等级,等级越高,可用的payload越多

--prefix  前缀 如:--prefix '%df%27'

--suffix  后缀 如:--suffix '-- l'

-p 指定注入点
--technique BEUSTQ(B:布尔盲注,E(Error injection):报错注入,U:union联合查询,S:堆叠查询(Stacking query),T:时间盲注,Q:内联)

自创建

    在合适的位置找到注入点后,根据宽字节注入原则,找到注入点并构建方式,可以在sqlmap的语句

二次编程注入

二次编,码问题

    url编码是一种浏览器用来打包表单输入的格式,URL编码就是一个字符ascii码的十六进制
不过稍微变动,需要在前面加上‘%’ ,比如‘\’ 的ascii码是92,92的十六进制是5c,
所以“\”的url编码是%5c。

二次编码的函数注入

    函数的16进制加密,只解一次,urldecode()和rawurldecode()两个函数,

注意:默认GET和POST函数,先解码一次
代码实例:




指定后缀,就不会用内联注入,

总结:sql注入与二次编码的结合利用,文件包含也是利用二次编码的利用

http请求头

user-agent

     浏览器向服务器表名自己的身份,使得服务器能够识别客户使用的操作系统,浏览器版本等
在user-agent的使用中,暂时的使用也是通过单引号,双引号这些策略来判断在useragent有没有注入点,
然后根据注入点,在做sql注入测试。



猜测在user-agent的sql语句为:

insert into users(id,uname,ip,uage) value ('1','admin','192.168.1.1','firfox');


然后通过
where id =1  and / or / union select /   and  ''=' / and sleep()
构建注入点跑sqlmap


先建立两种注入方式:
数字型延时盲注

数字盲注

referer

referer存在报错,可以用报错中注入,
使用案例如下图:

x-forwarded-for


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 zhumeng512@qq.com

文章标题:多方式注入 第三十四天

本文作者:弈少

发布时间:2019-09-02, 09:13:43

最后更新:2019-09-07, 09:14:37

原始链接:http://yoursite.com/2019/09/02/北京渗透测试第三十四天 20190902/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

相册